/*******************************************************************************
    Universidad del Valle de Guatemala
    Algoritmos y estructuras de datos
    Karen Tojin   08091
    Fecha: 30 de Julio de 2009
    Descricion: Programa que simula un banco, con el uso de colas
***************************************************************************** */

/**
 *
 * @author karenAndy
 */ 
public abstract class AbstractImpBanco <Type> implements InterfazCola{
    
    protected final int max = 10;
    protected int personas, disponibles;

    // post: agrega un elemento al final de la cola
    @Override
    public void Push(Object newPerson) {
        personas++;
        disponibles--;
    }

    // pre: la cola no está vacía
    // post: saca al elemento que está al inicio de la cola
    @Override
    public Object Pop(){
        personas--;
        disponibles++;
        return null;
    }

    // pre: la lista no está vacía
    // post: devuelve el último valor ingresado a la lista
    @Override
    public Object Peek(){
        return null;
    }

    // post: devuelve true si la lista está vacía y false si no lo está
    @Override
    public boolean Empty() {
        if(disponibles == max)
            return true;
        return false;
    }

    // post: devuelve true si la cola está llena y false si no lo está
    @Override
    public boolean Full(){
        if(disponibles==0)
            return true;
        return false;
    }

    // post: devuelve la cantidad de elementos en la cola
    @Override
    public int Size(){
        return personas;
    }
}
